在我第一年參加鐵人賽的完賽日不久後,我在六角學院的社團發現他們與 KKBOX 合作,推廣 KKBOX OPEN API 的應用,六角的助教大大還花了一些時間透過 Youtube 直播教大家怎麼樣去串接 OAuth 規範的 API。
當時的我還是個剛學會前端開發的小菜雞,所以看到這類的推廣活動瞬間就來了興致,印象中我從吃完晚飯一路寫 Code 弄到凌晨四點完成了第一版程式碼。
傳統的驗證機制中,伺服端會在收到使用者的登入資訊進行驗證,並回傳已登入的狀態資料,讓客戶端可以使用 Session/Cookie 的方式將資料保存起來。
考慮到安全性問題以及共用性,Oauth 就被提了出來!
Oauth 讓外部開發者所製作的應用不會直接取得資料,而是在登入時先跳到 API 提供方製作的登入頁面,等到狀態完成驗證後才會做網址的重定向並將使用者資訊交給應用程式。
解決了安全性疑慮,開發者們都能透過 Oauth 做出更多好玩的作品。
以大專院校為例,就我所知,目前有提供 Oauth API 服務的大專院校有:
也因為 Oauth,我們可以看到上述兩所學校的學生自幹出更方便強大的課表系統,甚至是 GPA 查詢系統。
介紹完 Oauth 後,讓我們回歸正題,其實我在參賽結束後就有在個人的 Medium 分享自己的心得。
先來說說 KKBOX 提供的獎勵:
這個要感謝 Chole 的幫忙,我才能拿到這麼 Q 的獎狀 >_<
以第一點來看,小弟我認為如果能去 SITCON/COSCUP/MOPCON 進行分享,是有助於累積人脈的,但因為那年剛好當了 SITCON 講者跟 COSCUP 志工,所以我就婉拒了他們的邀請 XDDD
再來是第二點,那時候問女友 (現在已經是前女友) 想不想去,結果他興趣缺缺我就送人了 QQQQ
最後一點其實是最吸引我的,之後實驗室會碰到大量的網路程式設計,搞不好畢業的時候會派上用場 XD
建議還是學生的讀者可以勇於嘗試各種不同類型的比賽增廣見聞 (當然,如果你已經是工程師也應該嘗試看看這種挑戰,累積 Side Project 又有機會跳槽不香ㄇ)
在比賽結束的一陣子後,因為想要自幹一個類似 Woo Talk 的隨機聊天室所以接觸 Socket IO 這套 JS Library 時才想到當初應該做一套基於 KKBOX 的聊天室軟體的 XD
更巧的是,在領票當天小弟我也有幸向 KKBOX 的內部工程師請教一些內部會用的開發工具,在聊天的過程中我也提到了這個想法,沒想到 KKBOX 內部還真的有利用 Open API 加上 WebSocket 去實作一個聊天室應用!
不過因為只是小組內在玩的 Fun project,就沒有向外部開放了 XD